#include <stdio.h>

int sum_n(int n);
int fib(int n);

int main(void)
{
	int i;

	for (i = 0; i <= 100; i++) {
		printf("%d的前n项和为%d\n", i, sum_n(i));
	}

	for (i = 1; i <= 20; i++)
		printf("%d ", fib(i));
	printf("\n");

	return 0;
}

// 递归调用从程序的效率来说,是更低的.递归主要用于解决非递归很难解决的问题
int sum_n(int n)
{
	// 终止条件
	if (0 == n)
		return 0;
	return n + sum_n(n - 1); // 递归点
}

int fib(int n)
{
	// n是第几项
	if (n < 1)
		return -1;
	if (n == 1 || n == 2)
		return 1;
	return fib(n - 1) + fib(n - 2);
}




